package br.com.foxinline.manager.criar;

import br.com.foxinline.modelo.TipoAtoImovel;
import br.com.foxinline.servico.TipoAtoImovelServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class ManagerCriarTipoAtoImovel implements Serializable {

    @EJB
    TipoAtoImovelServico tipoAtoImovelServico;

    private TipoAtoImovel tipoAtoImovel;

    private String editarId;

    @PostConstruct
    public void init() {
        instanciar();
        delegar();
    }

    private void instanciar() {
        tipoAtoImovel = new TipoAtoImovel();
    }

    private void delegar() {
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.editarId = parametros.get("tipoAtoImovelId");
        
        if (this.editarId != null) {
            this.tipoAtoImovel = tipoAtoImovelServico.pesquisar(Long.parseLong(this.editarId));
        }
    }

    public void salvar() {

        String mensagem;

        if (this.tipoAtoImovel.getId() == null) {
            tipoAtoImovelServico.salvar(this.tipoAtoImovel);
            mensagem = "Tipo de " + tipoAtoImovel.getAtoImovel().getNome() + " cadastrado com sucesso!";
            instanciar();
        } else {
            mensagem = "Tipo de " + tipoAtoImovel.getAtoImovel().getNome() + " atualizado com sucesso!";
            tipoAtoImovelServico.atualizar(this.tipoAtoImovel);
        }

        Mensagem.messagemInfo(mensagem);
    }    
    
    public TipoAtoImovel getTipoAtoImovel() {
        return tipoAtoImovel;
    }

    public void setTipoAtoImovel(TipoAtoImovel tipoAtoImovel) {
        this.tipoAtoImovel = tipoAtoImovel;
    }
}
